<?php
//消息逻辑层	
namespace app\common\Logic;
use think\Db;
class Message{
	/**
	 * 注册消息 
	 * @param $type			消息类别ID
	 * @param $tab_id		消息数据表主键
	 * @param $target_id	消息目标用户主键
	 * @param $source_id	消息源用户主键
	 */
	public function put_message($type,$tab_id,$target_id,$source_id=0,$tab_index=''){
		$message=config('message')[$type];
		$insert=[
			'tit'		=>$message['tit'],	//消息说明
			'type'		=>$type,			//消息类别id
			'target_id'	=>$target_id,		//目标用户主键
			'source_id'	=>$source_id,		//信息来源主键
			'tab'		=>$message['tab'],  //信息数据来源表
			'tab_index'	=>$tab_index,		//信息数据来源表主键
			'tab_id'	=>$tab_id,			//信息数据来源表主键值
			'ctime'		=>time()			//创建时间
		];
		$rel=Db::name('message')->insert($insert);
		if(!$rel){
			return rel(-1,'插入信息失败');
		}else{
			return rel(1,'插入信息成功');
		}
	}
	//弹出消息。
	public function push_message(){
		
	}
	/**
	 * 通过消息主键，返回消息关联数据，并自动修改该消息状态为已读
	 * @param $id		消息主键
	 * @param $uid		用户主键 
	 * 
	 */
	public function message_info($id,$uid){
		$message=Db::name('message')->where('id',$id)->find();
		if(!$message) return rel(-1,'无效的信息主机那');
		if($message['target_id']!=$uid) return rel(-1,'您非该信息目标用户');
		
		$id=!empty($message['tab_index']) ? $message['tab_index'] : 'id';
		$info=Db::name($message['tab'])->where($id,$message['tab_id'])->find();
		if($info){
			Db::name('message')->where('id',$id)->update(['stat'=>2]);
			return rel(1,'获取数据成功',$info);
		}else{
			return rel(-1,'数据错误');	
		}
	}
}